﻿using GDM.Hogar.Entidades;
using GDM.Hogar.Managers.Contratos;
using GDM.Hogar.Repositorios.Contratos;
using System;
using System.Collections.Generic;

namespace GDM.Hogar.Managers
{
    public class ParteQuincenalPersonalManager : IParteQuincenalPersonalManager
    {
        private readonly IParteQuincenalPersonalRepositorio _parteQuincenalPersonalRepositorio;

        public ParteQuincenalPersonalManager(IParteQuincenalPersonalRepositorio parteQuincenalPersonalRepositorio)
        {
            if (parteQuincenalPersonalRepositorio == null)
            {
                throw new ArgumentNullException("parteQuincenalPersonalRepositorio");
            }
            _parteQuincenalPersonalRepositorio = parteQuincenalPersonalRepositorio;
        }

        public void ActualizarParteQuincenalPersonal(string parteQuincenalPersonal)
        {
            _parteQuincenalPersonalRepositorio.ActualizarParteQuincenalPersonal(parteQuincenalPersonal);
        }

        public bool ExisteParteQuincenalPersonal(DateTime fechaComienzoQuincena, DateTime fechaFinQuincena)
        {
            //var parteQuincenalPersonal = _parteQuincenalPersonalRepositorio.ObtenerParteQuincenalPersonal(fechaComienzoQuincena, fechaFinQuincena);
            //return parteQuincenalPersonal != null;
            return false;
        }

        public bool ExisteParteQuincenalPersonal(int año, int mes, int quincena, int agenteId)
        {
            var parteQuincenalPersonal = _parteQuincenalPersonalRepositorio.ObtenerParteQuincenalPersonal(año, mes, quincena, agenteId);
            return parteQuincenalPersonal.Count > 0;
        }

        public void GuardarParteQuincenalPersonal(string parteQuincenalPersonal)
        {
            _parteQuincenalPersonalRepositorio.GuardarParteQuincenalPersonal(parteQuincenalPersonal);
        }

        public ParteDiarioPersonal ObtenerParteQuincenalPersonal(int parteQuincenalPersonalId)
        {
            return _parteQuincenalPersonalRepositorio.ObtenerParteQuincenalPersonal(parteQuincenalPersonalId);
        }

        public IList<ConsultaParteQuincenalPersonal> ObtenerTodosPorMesQuincena(int mes, int año, int quincena)
        {
            return _parteQuincenalPersonalRepositorio.ObtenerTodosPorMesQuincena(mes, año, quincena);
        }

        public void ActivarParteDiarioPersonal(int parteDiarioPersonalId, bool activo)
        {
            _parteQuincenalPersonalRepositorio.ActivarParteDiarioPersonal(parteDiarioPersonalId, activo);
        }
    }
}